package com.mathlearning.auth.dto;

import jakarta.validation.constraints.NotBlank;
import com.fasterxml.jackson.annotation.JsonAlias;
import jakarta.validation.constraints.Pattern;
import lombok.Data;

@Data
public class RegisterRequest {
    @NotBlank(message = "手机号不能为空")
    @Pattern(regexp = "^1[3-9]\\d{9}$", message = "手机号格式不正确")
    private String phone;

    @NotBlank(message = "密码不能为空")
    @Pattern(regexp = "^(?=.*[A-Za-z])(?=.*\\d)[A-Za-z\\d@$!%*#?&]{6,20}$", 
             message = "密码必须6-20位，包含字母和数字")
    private String password;

    @NotBlank(message = "短信验证码不能为空")
    private String smsCode;  // 与前端字段名一致

    @NotBlank(message = "图片验证码不能为空")
    @JsonAlias({"captcha"})
    private String captchaCode;
    
    // 前端额外的字段（可选）
    private String confirmPassword;  // 确认密码
    
    // 兼容前端把 token 放在 body 的情况（优先使用 query 的 captchaToken）
    @JsonAlias({"token"})
    private String captchaToken;
    private Boolean agreeTerms;      // 是否同意协议
}







